Cours - Histoire de Linux et des systèmes d'exploitation

Hello, world!
À propos de moi
À propos de vous ?
Signatures de présence
Évaluations (?)
Méthode de travail
- Alternance théorie / pratique
- Contenu sur ce ce site
- Travail dans une machine virtuelle
- Setup avec Guacamole pour les stagiaires à distance
Objectifs
- Vous fournir des bases solides via la pratique
- Vous transmettre une forme d'enthousiasme !
Disclaimers
- C'est une formation d'informatique technique
- L'informatique technique, c'est compliqué
- Le brute force ne marche pas, il faut être précis / rigoureux...
- Soyez patient, méthodique, attentifs !
- Ne laissez pas l'écran vous aspirer !
On est là pour apprendre
- Réussir les exo importe peu, il faut comprendre ce que vous faites !
- Apprendre plus que de la théorie (posture, savoir se dépatouiller...)
- Prenez le temps de vous tromper (et de comprendre pourquoi)
N'hésitez pas à poser vos questions !
1. Les origines de (GNU/)Linux
(ou plus largement de l'informatique contemporaine)
La préhistoire de l'informatique
- ~1940 : Ordinateurs electromecaniques, premiers ordinateurs programmables
- ~1950 : Transistors
- ~1960 : Circuits intégrés
...Expansion de l'informatique...
1970 : PDP-7

1970 : (old computer?)

1970 : UNIX
- Définition d'un 'standard' pour les OS
- Un multi-utilisateur, multi-tâche
- Design modulaire, simple, élégant, efficace
- Adopté par les universités américaines
- Ouvert (évidemment)
- (Écrit en assembleur)

1970 : UNIX

1975 : Le langage C
- D. Ritchie et K. Thompson définissent un nouveau langage : le C ;
- Le C rends portable les programmes ;
- Ils réécrivent une version d'UNIX en C, ce qui rends UNIX portable ;

1970~1985 : Les débuts d'Internet
- Définition des protocoles IP et TCP
- Faire communiquer les machines entre elles
- Distribué / décentralisé : peut survivre à des attaques nucléaires
- ARPANET ...
1970~1985 : Les débuts d'Internet

1970~1985 : Les débuts d'Internet
- Définition des protocoles IP et TCP
- Faire communiquer les machines entre elles
- Distribué / décentralisé : peut survivre à des attaques nucléaires
- ARPANET ...
- ... puis le "vrai" Internet
- Terminaux dans les grandes universités
- Appartition des newsgroup, ...
1980 : Culture hacker, logiciel libre
- Le logiciel devient un enjeu commercial avec des licences propriétaires
- L'informatique devient un enjeu politique
- La culture hacker se développe dans les universités
- Partage des connaisances
- Transparence, détournement techniques
- Contre les autorités centrales et la bureaucratie
- Un mouvement technique, artistique et politique
1980 : Culture hacker, logiciel libre
- R. Stallman fonde le mouvement du logiciel libre et la FSF (Free Software Foundation)
0. Liberté d'utiliser du programme
- Liberté d'étudier le fonctionnement du programme
- Liberté de modifier le programme
- Liberte de redistribuer les modificiations
- ... et le projet GNU : un ensemble de programmes libres

1990 : Création de Linux
- Linus Torvalds écrit Linux dans son garage

1990 : Création de Linux
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)
Linus (torvalds@kruuna.helsinki.fi)
PS. [...] It is NOT portable [...] and it probably never will support anything other than AT-harddisks, as that's all I have :-(. — Linus Torvalds
1990 : Et en fait, Linux se développe...
- Linus Torvalds met Linux sous licence GPL
- Support des processeurs Intel
- Système (kernel + programmes) libre et ouvert
- Compatibles avec de nombreux standard (POSIX, SystemV, BSD)
- Intègre des outils de développement (e.g. compilateurs C)
- Excellent support de TCP/IP
- Création de Debian en 1993
... L'informatique et Internet se démocratisent ...
En très résumé :
- Linux remporte le marché de l'infrastructure (routeur, serveurs, ..)
- Windows remporte le marché des machines de bureau / gaming
- Google remporte le marché des smartphones
L'informatique contemporaine


Architecture d'un ordinateur

Le rôle d'un système d'exploitation
- permet aux users d'exploiter les ressources
- sais communiquer avec le hardware
- créer des abstractions pour les programmes (e.g. fichiers)
- partage le temps de calcul entre les programmes
- s'assure que les opérations demandées sont légales
Linux aujourd'hui
- Très présent dans les routeurs, les serveurs et les smartphones
- Indépendant de tout constructeur
- Evolutif mais très stable
- Le système est fait pour être versatile et personnalisable selon son besoin
- Pratiques de sécurités beaucoup plus saines et claires que Microsoft
Les distributions
Un ensemble de programmes "packagés", préconfigurés, intégré pour un usage ~précis ou suivant une philosophie particulière
- Un noyau (Linux)
- Des programmes (GNU, ...)
- Des pré-configurations
- Un gestionnaire de paquet
- Un (ou des) environnements graphiques (Gnome, KDE, Cinnamon, Mate, ...)
- Une suite de logiciel intégrée avec l'environnement graphique
- Des objectifs / une philosophie
Les distributions

- Debian : réputé très stable, typiquement utilisé pour les serveurs
- Ubuntu, Mint : grand public
- CentOS, RedHat : pour les besoins des entreprises
- Archlinux : un peu plus technicienne, très à jour avec les dernières version des logiciels
- Kali Linux : orientée sécurité et pentesting
- Android : pour l'embarqué (téléphone, tablette)
- YunoHost : auto-hébergement grand-public
- Kubernetes / k8s : devops, déploiement et orchestration de flotte de conteneur
Les distributions
Et bien d'autres : Gentoo, LinuxFromScratch, Fedora, OpenSuse, Slackware, Alpine, Devuan, elementaryOS, ...
Linux, les environnement
- Gnome
- Cinnamon, Mate
- KDE
- XFCE, LXDE
- Tiling managers (awesome, i3w, ...)





Environnement de travail : Linux Mint
- (Choix arbitraire du formateur)
- Distribution simple, sobre, pas spécialement controversée (?)
- Profite de la stabilité de Debian et de l'accessibilité d'Ubuntu